package util;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;

public class TimeZoneUtil {

	public Timestamp getHoraLocal() throws ParseException {

		TimeZone timeZone = TimeZone.getTimeZone("America/Porto_Velho");
		Calendar cal = new GregorianCalendar();
		cal.setTimeZone(timeZone);
		int dia = cal.get(Calendar.DAY_OF_MONTH);
		int mes = cal.get(Calendar.MONTH) + 1;
		int ano = cal.get(Calendar.YEAR);

		int h = cal.get(Calendar.HOUR_OF_DAY);
		int m = cal.get(Calendar.MINUTE);

		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

		return new Timestamp(sdf.parse(dia + "/" + mes + "/" + ano + " " + h + ":" + m + ":00").getTime());
	}

	public String getDataLocal() throws ParseException {

		TimeZone timeZone = TimeZone.getTimeZone("America/Porto_Velho");
		Calendar cal = new GregorianCalendar();
		cal.setTimeZone(timeZone);
		int dia = cal.get(Calendar.DAY_OF_MONTH);
		int mes = cal.get(Calendar.MONTH) + 1;
		int ano = cal.get(Calendar.YEAR);
		
		int h = cal.get(Calendar.HOUR_OF_DAY);
		int m = cal.get(Calendar.MINUTE);

		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

		return sdf.format(new Date(sdf.parse(dia + "/" + mes + "/" + ano + " " + h + ":" + m + ":00").getTime()));
	}
	
	public String getDataLocalMenosUmMes() throws ParseException {

		TimeZone timeZone = TimeZone.getTimeZone("America/Porto_Velho");
		Calendar cal = new GregorianCalendar();
		cal.setTimeZone(timeZone);
		cal.add(Calendar.DAY_OF_MONTH, -30);
		int dia = cal.get(Calendar.DAY_OF_MONTH);
		int mes = cal.get(Calendar.MONTH) + 1;
		int ano = cal.get(Calendar.YEAR);
		
		int h = cal.get(Calendar.HOUR_OF_DAY);
		int m = cal.get(Calendar.MINUTE);

		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

		return sdf.format(new Date(sdf.parse(dia + "/" + mes + "/" + ano + " " + h + ":" + m + ":00").getTime()));
	}
	
	public Timestamp getTimestamp(Calendar calendar) throws ParseException {

		int dia = calendar.get(Calendar.DAY_OF_MONTH);
		int mes = calendar.get(Calendar.MONTH) + 1;
		int ano = calendar.get(Calendar.YEAR);

		int h = calendar.get(Calendar.HOUR_OF_DAY);
		int m = calendar.get(Calendar.MINUTE);

		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

		return new Timestamp(sdf.parse(dia + "/" + mes + "/" + ano + " " + h + ":" + m + ":00").getTime());
	}

}
